<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Auth
 *
 * @author ewerson
 */
require_once (realpath(dirname(__FILE__)) . "/../models/UsuarioDAO.class.php");

class Auth {

   
public function __construct() {
        
        if (isset($_POST['metodo'])) {
            switch ($_POST['metodo']) {
                case 'autenticar':
                    $this->autenticar();
                    break;
            }
        }

        //Condicional para escolher qual metodo será chamado.
        if (isset($_GET['metodo'])) {
            switch ($_GET['metodo']) {
                case 'logoff':
                    $this->logoff();
                    break;
            }
        }
    }
    
    
    
    function autenticar() {

        // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
        if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
            echo "Campo em branco, Redirecionando...";
            echo "<meta HTTP-EQUIV='Refresh' CONTENT='2; URL=/pat/views/login'>";
            exit;
        }

        // Pega os dados vindos do formulário
        $login = $_POST['usuario'];
        $senha = $_POST['senha'];

        //Passas os dados para o metodo validarLogin onde é verificado se o login e senha
        //constão no banco de dados..
        if ($this->validarLogin($login, $senha)) {

           echo "<script>location.href = '/pat/views/home/';</script>";
        }
    }

    //Metodo verifica se o login e senha constão no banco de dados.
    function validarLogin($login, $senha) {

        //Instancia um objeto de UsuarioDAO para realizar as consultas.
        $usuarioDAO = new UsuarioDAO();
        //Passa o nome do usuario vindo do formulário para que o DAO faça uma consulta ao banco, 
        //caso encontre algo ele retorna um Objeto Usuario.
        $usuario = $usuarioDAO->listByNome($login);


        //Se o objeto Usuário nao for nulo a condição é aceita.
        if ($usuario != null) {
            //Verifica se o atributo senha do Objeto Usuário é igual a senha preenchida no formulario.            
            if ($usuario->getSenha() == $senha) {

                //Inicia a sessão
                session_start();
                // Salva os dados encontrados na sessão
                $_SESSION['id'] = $usuario->getId();
                $_SESSION['login_pat'] = $usuario->getUsuario();
                $_SESSION['nivel'] = $usuario->getNivel();
                
                //$_SESSION['senha'] = $_POST['senha'];

                return true;
            }


            echo "Senha invalida, Redirecionando...";
            echo "<meta HTTP-EQUIV='Refresh' CONTENT='2;URL=/pat/views/login'>";
            return false;
        }
        echo "Login invalido, Redirecionando...";
        echo "<meta HTTP-EQUIV='Refresh' CONTENT='2;URL=/pat/views/login'>";
        return false;
    }

    //Realiza o saida do sistema removendo a sessão
    function logoff() {

        //Inicia a sessão
        session_start();
        //Elimina os dados da sessão
        session_unregister($_SESSION['login_pat']);
        //session_unregister($_SESSION['senha']);
        //Encerra a sessão
        session_destroy();

        echo "<script>location.href = '/pat/views/login/';</script>";
    }

    function verificar() {
        //Inicia a sessão
        session_start();

        //Verifica se há dados ativos na sessão
        if (empty($_SESSION["login_pat"])) {
            //Caso não exista dados registrados, exige login
            echo "<script>location.href = '/pat/views/login/';</script>";
        }
    }
    
    public static function verificarNivelDeAcesso($id){
        //Inicia a sessão
        //session_start();    
        
        if($id !=$_SESSION['nivel']){
            $_SESSION['message'] = "Você nao tem permissão para acessar essa área.";
            echo "<script>location.href = '/pat/views/home';</script>";
            break;
        }     
    }

}

$auth = new Auth();
?>
